#pragma once

#include "entities/improvement.h"

class City:public Improvement{
    public:
        City(int index, int owner);
        virtual void EndTurn();
        virtual void Select();
        virtual EntityType GetType(){ return ET_CITY; }

        float GetPopulation(){ return population; }
        float GetAdministrativeDistance();
        float GetFarmingDistance();

        void DoImprovementConstruction();
        void BeginNextImprovementConstruction();
        void AppendImprovementConstructionQueue(int id);
        void PrioritiseImprovementConstruction(int id);

        bool GrowPopulation();
        void UpdateFarms();

    private:
        float population;
        int stockpiled_food;

        std::vector<int> improvement_construction_queue;

};
